<template>
    <el-card>
      <div v-if="!fileData">
        <p>请导入文件后显示数据</p>
        <el-upload
          action="http://192.168.1.154:8080/exam/T_subject/uploadDocumen"
          :show-file-list="false"
          :before-upload="handleFileUpload"
          :on-success="handleUploadSuccess"
        >
          <el-button type="primary">上传文件</el-button>
        </el-upload>
      </div>
      <div v-else>
        <!-- 这里显示从文件中解析出来的数据 -->
        <p>{{ fileData }}</p>
      </div>
    </el-card>
  </template>
  
  <script setup>
  import { ref } from 'vue';
  import { getCourseSyllabus } from '@/api/course.js'
  // 声明响应式数据
  const fileData = ref(null);
  
  // 处理文件上传
  const handleFileUpload = async (file) => {
    // 模拟异步处理文件上传，并返回二进制数据
    console.log(file);
    // const binaryData = await mockUploadAndProcessFile(file);
    // // 将二进制数据解析成原有格式（这里假设是文本数据）
    // const parsedData = parseBinaryData(binaryData);
    // // 将解析后的数据保存到响应式数据中，触发重新渲染
    // fileData.value = parsedData;
  };
  const handleUploadSuccess = (res,file) =>{
      // 获取上传成功后返回的路径
  const data = res.data.path;
    console.log('res',res);
    console.log('{ filePath }',data);
// 调用获取课程大纲信息的接口，并将文件路径作为参数传递
getCourseSyllabus(data)
  .then(response => {
    // 处理返回的课程大纲信息
    const syllabusData = response.data;
    // 在这里可以对课程大纲数据进行处理，比如展示在页面上或者进行其他操作
    console.log('Course syllabus:', syllabusData);
  })
  .catch(error => {
    console.error('Failed to get course syllabus:', error);
  });

console.log('handleUploadSuccess555', res, file);

  }
  // 模拟上传并处理文件的函数
  const mockUploadAndProcessFile = async (file) => {
    // 这里可以使用实际的文件上传逻辑
    // 这里简单地使用 setTimeout 模拟异步处理
    return new Promise((resolve) => {
      setTimeout(() => {
        // 这里返回模拟的二进制数据
        const binaryData = '模拟的二进制数据';
        resolve(binaryData);
      }, 1000);
    });
  };
  
  // 解析二进制数据的函数（这里简单地将二进制数据转换为字符串）
  const parseBinaryData = (binaryData) => {
    // 这里可以根据实际情况进行二进制数据的解析
    return binaryData.toString();
  };
  </script>
  
  <style scoped>
  /* 这里可以添加样式 */
  </style>
  